/*
 * Copyright 2009 Brian Mackay brianwmackay@msn.com
 *   All Rights Reserved. See end of file
 */
package com.bmackay.molly.utils;

import com.bmackay.bettegraham.project.Project;
import com.bmackay.pulaski.ModelLoader;
import com.bmackay.bainbridge.query.datasource.factory.DataSetLoader;
import com.hp.hpl.jena.graph.Node;
import com.hp.hpl.jena.rdf.model.Model;

public class ProjectLoader {

    private Project project = null;
    private String path = "";

    public void init(String url) {
        project = new Project(ModelLoader.loadGraphN3(url));
    }

    public void init() {
        init("com/bmackay/molly/config/MollyPitcherConfigModel.n3");
    }

    public Project get() {
        return project;
    }

    public void setCurrentModelConfiguration(Node subject) {
        project.setCurrentModelConfiguration(subject);
    }

    public String getLocationMappings() {

        if (!this.path.equals("")) {
            return this.path;
        }
        return project.getProcessInPutRootString();
    }

    public void setLocationMappings(String path) {
        this.path = path;
    }

    public void loadLocation(Node subject) {
        setCurrentModelConfiguration(subject);
        loadLocation();
    }

    public void loadLocation(Model model) {
        DataSetLoader dataSetLoader = new DataSetLoader();
        dataSetLoader.loadAll(model);
    }

    public void loadLocation() {
        DataSetLoader dataSetLoader = new DataSetLoader();
        dataSetLoader.loadAll(getLocationMappings());
    }
}

/*
 * Copyright 2009 Brian Mackay brianwmackay@msn.com
 * All Rights Reserved.
 * <p/>
 * Licensed under the Apache License, Version 2.0 (the 'License');
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * <p/>
 * http://www.apache.org/licenses/LICENSE-2.0
 * <p/>
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an 'AS IS' BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */